package edu.eam.paii.proyecto.dao;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import edu.eam.paii.proyecto.entidades.Cliente;
import edu.eam.paii.proyecto.entidades.Credito;
import edu.eam.paii.proyecto.entidades.Cuenta;
import edu.eam.paii.proyecto.idao.ClienteIDAO;

public class ClienteDAO implements ClienteIDAO {

	private EntityManager em;

	public ClienteDAO(EntityManager em) {

		this.em = em;
		// TODO Auto-generated constructor stub
	}

	@Override
	public void crear(Cliente cliente) {
		em.persist(cliente);
		// TODO Auto-generated method stub

	}

	@Override
	public Cliente buscar(int cedula) {
		return em.find(Cliente.class, cedula);
		// TODO Auto-generated method stub

	}

	@Override
	public void eliminar(Cliente cliente) {

		em.remove(cliente);
		// TODO Auto-generated method stub

	}

	@Override
	public Cliente editar(Cliente cliente) {

		em.merge(cliente);
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<Cliente> listarClientes() {
		// TODO Auto-generated method stub
		
		List<Cliente> clientes =em.createNativeQuery("Cliente.listar").getResultList();
		
		
		return clientes;
	}

	@Override
	public List<Credito> listarCreditosCliente(String cedula) {
		// TODO Auto-generated method stub
		
	Query q=em.createNamedQuery("Credito.listarCreditosCliente");
	q.setParameter("Documento", cedula);
		return q.getResultList();
	}

	@Override
	public List<Cuenta> listarCuentasCLiente(String cedula) {
		// TODO Auto-generated method stub
		Query q = em.createNamedQuery("Cuenta.listarCuentasCliente");
		q.setParameter("Documento", cedula);
		return q.getResultList();
	}

}
